<?php
/**
 * Pàgina que conté la classe conector
 * Aquesta classe s'encarrega de gestionar la connexió amb la base de dades
 *
 * @copyright 2009 - Equip de Desenvolupament de ASI 2
 * @link http://www.iescopernic.com
 * @version 1.0
 * @license GNU/GPL-http://www.gnu.org/copyleft/gpl.html
 * @package CreditSintesis
 * @subpackage includes
 * @author ASI 2
 */


//////////////////////////////
///               	   ///
///    CLASS CONECTOR      ///
///               	   ///
//////////////////////////////

class conector{

    //////////////
    ///PUBLICAS///
    //////////////

/**
 * Nom del servidor
 * @access public
 * @var String
 */
    var $servidor = 'localhost';    //Direccio del servidor MySql "localhost"

/**
 * Nom del usuari
 * @access public
 * @var String
 */
    var $usuari = 'test';    //Usuari del servidor MySql

/**
 * Contrasenya servidor
 * @access public
 * @var String
 */
    var $pass = '12345';    //Contrasenya del servidor MySql

/**
 * Nom de la base de dades
 * @access public
 * @var String
 */
    var $bbdd = 'webserver';    //Nom de la base de dades

/**
 * Email del administrador
 * @access public
 * @var String
 */
    var $email = '';    //Mail Administrador


    //////////////
    ///PRIVADAS///
    //////////////

/**
 * Conté la connexió a la base de dades
 * @access private
 * @var String
 */
    private $conexio = '';    //Conexio a MySql

/**
 * Conté la selecció de la base de dades
 * @access private
 * @var String
 */
    private $selectbbdd = '';    //Seleccionar la base de dades

/**
 * Enmagatzema un resultat
 * @access private
 * @var String
 */
    private $resultat = '';  //Resultat

/**
 * Enmagatzema el número de columnes
 * @access private
 * @var Integer
 */
    private $columnas = 0;  //Numero de columnes

/**
 * Enmagatzema el número de files
 * @access private
 * @var Integer
 */
    private $filas = 0;      //Nuemero de filas

/**
 * Enmagatzema un resultat
 * @access private
 * @var String
 */
    private $res = '';    //Guardar Resultat

/**
 * Enmagatzema un boolea
 * @access private
 * @var Boolean
 */
    private $test = true;    //Test TRUE o FALSE

    //----------------------------------------------------------//

/**
 * Es el constructor de la classe conector.
 * Crea una connexió amb la base de dades.
 */
    function conector(){  //Conectar a la base de dades
        $this->conexio=@mysql_connect(
            $this -> servidor,
            $this -> usuari,
            $this -> pass) or $this->error();

        $this->selectbbdd=@mysql_select_db(
            $this -> bbdd,
            $this -> conexio) or $this->error();

    }
    //----------------------------------------------------------//

/**
 * Funció que gestiona els errors al conectar amb la base de dades,
 * envia un e-mail al administrador en cas d'error.
 */
    function error(){    //Mostrar ERRORS
        if ($this->test){
            echo "<b><font color='red'>ERROR:</b> --> </b>".
            mysql_errno()."</b> - <u>" .mysql_error()."</u></font>";
            exit();
        }
        else{
            echo "<b><font color='red'>S'ha produit un Error</font></b>";
            if ($this->email){
                echo "S'ha informat a l'administrador per correu.";
                //Enviar Correu Informe d'error
                mail(
                    $this->email,
                     "Error mysql en" .$_SERVER['PHP_SELF'],
     /*indica pag error*/    "Error-> " .mysql_error()."\n en->" .$_SERVER ['PHP_SELF'].
    /*indica parametres error*/    $_SERVER['QUERY_STRING']."\n a les-> ".date('H:i:s - l, d-m-Y'));
            }               //20:15:12 - Monday, 10-02-2009
            exit ();
        }
    }
    //--------------------------------------------------------------//

    /**
     * Funció que envia una consulta a la base de dades.
     * @param String $consulta
     * @return array|resultat
     */
    function consultar($consulta){    //Executem una Consulta a MySql
        $this->resultat=@mysql_query($this -> consulta = $consulta,$this -> conexio)
        or $this->error();
        return ($this->resultat);
    }
    //--------------------------------------------------------------//

/**
 * Funció que ens retorna el número de files del resultat d'una consulta.
 * @param String $consulta
 * @return Integer|filas
 */
    function num_filas($consulta){ //Retorna el numero total de filas de la consulta
        $this ->res = $this ->consultar($consulta);
        $this->filas=mysql_num_rows($this -> res);
        return ($this->filas);
    }
    //--------------------------------------------------------------//

/**
 *Funció que ens retorna el número de columnes del resultat d'una consulta.
 * @param String $consultes
 * @return Integer|columnas
 */
    function num_columnes($consultes){  //Retorna el numero total de columnes de la consulta
        $this ->res = $this ->consultar($consulta);
        $this->columna=@mysql_num_fields($this ->res);
        return ($this ->columnas);
    }
    //--------------------------------------------------------------//

/**
 * Funció que tanca la connexió amb la base de dades.
 */
    function tancar(){ //tanca la conexio amb la base de
        mysql_close($this -> conexio);
    }
}
?>
